在 Laravel 專案中,當我們需要向 外部 API 發送請求 時,常用的工具有:
Laravel HTTP Client 讓我們以更簡潔的方式發送 HTTP 請求,以下就透過實際範例來比較兩者的用法。
Laravel 預設已安裝 Guzzle,如果沒有的話可透過下列指令安裝:
composer require guzzlehttp/guzzle
use Illuminate\Support\Facades\Http;
$response = Http::get('http://example.com');
$data = $response->json(); // 可直接取得 JSON 陣列
Guzzle:
$client = new \GuzzleHttp\Client();
$res = $client->get('http://example.com');
$data = json_decode($res->getBody()->getContents(), true);
3. 發送 POST 請求並附帶參數
Laravel HTTP Client:
$response = Http::post('http://example.com/users', [
'name' => 'Steve',
'role' => 'Network Administrator',
]);
$client = new \GuzzleHttp\Client();
$options['json'] = [
'name' => 'Steve',
'role' => 'Network Administrator',
];
$res = $client->post('http://example.com/users', $options);